package com.wzdigit.wms.basic.client.request.basic;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

/**
 * 导入库位基础信息输入
 * @author yangdongjie
 * @WarehouseAttrResponse.java
 * @2020年12月31日下午5:18:20
 */
@Data
public class ImportLocationBasicRequest implements Serializable {

	private static final long serialVersionUID = 4389599820813949967L;

	/**
	 * 行号
	 */
	private Integer row;
	
	/**
	 * 库区编码
	 */
	@NotBlank(message = "库区编码不能为空")
	@Pattern(regexp = "[a-z0-9A-Z-]+", message = "库区编码有误")
    private String zoneCode;

	/**
	 * 库位代码
	 */
	@NotBlank(message = "库位代码不能为空")
	@Pattern(regexp = "[a-z0-9A-Z-]+", message = "库位代码有误")
    private String locCode;

	/**
	 * 库位描述
	 */
	@NotBlank(message = "库位描述不能为空")
    private String locDesc;

	/**
	 * 库位显示
	 */
	@NotBlank(message = "库位显示不能为空")
    private String locDisp;

	/**
	 * 电子标签ID
	 */
    private String rfidId;

	/**
	 * 货架ID
	 * 表示入库流程中，需要上架到该库区的货物，将首先移动到制定的库位作为上架过渡。通常情况下可跳过，不设置
	 */
    private String rackId;

	/**
	 * 库存/存储环境
	 */
    private String storeEnv;

	/**
	 * 上架顺序：
	 */
	@NotBlank(message = "上架顺序不能为空")
    private String putawaySeq;

	/**
	 * 拣货顺序：
	 */
	@NotBlank(message = "拣货顺序不能为空")
    private String pickSeq;

	/**
	 * 校验码：
	 * 操作库位确认时，可通过扫描校验码确认库位，而不是仅仅根据库位 ID。
	 */
    private String validationCode;

    /**
     * 状态
     */
	@NotBlank(message = "状态不能为空")
    private String status;

    /**
     * 备注
     */
    private String comments;

    /**
     * 用户自定义字段1（使用方式/用途）
     */
	@NotBlank(message = "使用方式/用途名称不能为空")
    private String udf1;

    /**
     * 用户自定义字段2（库位类型）
     */
	@NotBlank(message = "库位类型名称不能为空")
    private String udf2;

    /**
     * 用户自定义字段3（属性）
     */
	@NotBlank(message = "属性名称不能为空")
    private String udf3;

    /**
     * 用户自定义字段4（库位处理）
     */
    private String udf4;

    /**
     * 用户自定义字段5（周转需求）
     */
    private String udf5;

    
}